home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 7 / FM Towns Free Software Collection 7.iso / t_os / dcmedit / src / dcmedit.bas next >
BASIC Source File  |  1993-11-30  |  19KB  |  476 lines

  1. 10000 '
  2. 10010 ' GUIマップエディタ For DARK CARMINE By EMERALD
  3. 10020 '
  4. 10030 ' DCMEDIT.BAS
  5. 10040 '
  6. 10050 *初期設定
  7. 10060 '
  8. 10070 CLOSE
  9. 10080 SCREEN@0
  10. 10090 SCREEN 1,0,1,1
  11. 10100 COLOR 7,0,7,0
  12. 10110 CLS
  13. 10120 CLEAR ,,,,,1024*300
  14. 10130 DEF FONT "システム   12ドット"
  15. 10140 FBAI=12/16
  16. 10150 ON ERROR GOTO *エラートラップ
  17. 10160 '
  18. 10170 PALETTE
  19. 10180 '
  20. 10190 DIM G%(32,32)
  21. 10200 DIM EUP%(100000)
  22. 10210 GRID_ST=12
  23. 10220 PLUS_X=128
  24. 10230 PLUS_Y=48
  25. 10240 BLOCK_KIND=1
  26. 10250 ENDLESS=0
  27. 10260 '
  28. 10270 SCREEN 1,1,2,1
  29. 10280 SYMBOL (50,50),"Now Setting........",FBAI,FBAI,%15
  30. 10290 SCREEN 1,0,2,1
  31. 10300 '
  32. 10310 LINE (0,0)-(639,479),PSET,%1,BF
  33. 10320 '
  34. 10330 GOSUB *グリッド作成
  35. 10340 '
  36. 10350 PAINT (0,0),%0,%8
  37. 10360 '
  38. 10370 GOSUB *ロゴ表示
  39. 10380 '
  40. 10390 GOSUB *マウス初期設定
  41. 10400 '
  42. 10410 GOSUB *コンフィグロード
  43. 10420 '
  44. 10430 GOSUB *パレットロード
  45. 10440 '
  46. 10450 SCREEN 1,1,2,1
  47. 10460 '
  48. 10470 GOSUB *パレットロード
  49. 10480 '
  50. 10490 CLS
  51. 10500 SCREEN 1,0,3,1
  52. 10510 GOTO *メインループ
  53. 10520 '
  54. 10530 ''''
  55. 10540 '
  56. 10550 *メインループ
  57. 10560 '
  58. 10570 WHILE ENDLESS=0
  59. 10580 IF MOUSE(0)=<PLUS_X OR PLUS_X+GRID_ST*33-GRID_ST=<MOUSE(0) OR MOUSE(1)=<PLUS_Y OR PLUS_Y+GRID_ST*33-GRID_ST=<MOUSE(1) THEN *WENDER
  60. 10590 IF MOUSE (2,0)=-1 THEN
  61. 10600   ZELDA_X=MOUSE(0):ZELDA_Y=MOUSE(1)
  62. 10610   '
  63. 10620   GOSUB *現在位置計算
  64. 10630   '
  65. 10640   G%(GX,GY)  =BLOCK_KIND
  66. 10650   IF BLOCK_KIND=0 THEN
  67. 10660     PAINT (ZELDA_X,ZELDA_Y),%1,%8
  68. 10670     PAINT (ZELDA_X+1,ZELDA_Y+1),%1,%8
  69. 10680   ENDIF
  70. 10690   IF BLOCK_KIND=1 THEN
  71. 10700     PAINT (ZELDA_X,ZELDA_Y),%7,%8
  72. 10710     PAINT (ZELDA_X+1,ZELDA_Y+1),%7,%8
  73. 10720   ENDIF
  74. 10730   IF BLOCK_KIND=2 THEN
  75. 10740     PAINT (ZELDA_X,ZELDA_Y),%6,%8
  76. 10750     PAINT (ZELDA_X+1,ZELDA_Y+1),%6,%8
  77. 10760   ENDIF
  78. 10770 ENDIF
  79. 10780 IF MOUSE (2,1)=-1 THEN
  80. 10790   SCREEN 1,1,1,1
  81. 10800   CLS
  82. 10810   SCREEN 1,1,3,1
  83. 10820   '
  84. 10830   GOSUB *セレクタ
  85. 10840   '
  86. 10850   *ループA
  87. 10860   IF MOUSE(2,0)=-1 OR MOUSE(2,1)=-1 THEN *ループA
  88. 10870 ENDIF
  89. 10880 *WENDER
  90. 10890 WEND
  91. 10900 ''''
  92. 10910 '
  93. 10920 *セレクタ
  94. 10930 '
  95. 10940 IF MOUSE(1)<320 THEN 
  96. 10950   DUMMY_X=MOUSE(0)-34
  97. 10960   DUMMY_Y=MOUSE(1)
  98. 10970 ENDIF
  99. 10980 IF MOUSE(1)>=320 THEN 
  100. 10990   DUMMY_X=MOUSE(0)-34
  101. 11000   DUMMY_Y=MOUSE(1)-191
  102. 11010 ENDIF
  103. 11020 LINE (DUMMY_X,DUMMY_Y)-(DUMMY_X+68,DUMMY_Y+192),PSET,%2,BF,%3
  104. 11030 SYMBOL (DUMMY_X+10,DUMMY_Y+10),"空白",FBAI,FBAI,%15
  105. 11040 SYMBOL (DUMMY_X+10,DUMMY_Y+30),"壁",FBAI,FBAI,%15
  106. 11050 SYMBOL (DUMMY_X+10,DUMMY_Y+50),"扉",FBAI,FBAI,%15
  107. 11060 SYMBOL (DUMMY_X+10,DUMMY_Y+70),"全消去",FBAI,FBAI,%15
  108. 11070 SYMBOL (DUMMY_X+10,DUMMY_Y+90),"セーブ",FBAI,FBAI,%15
  109. 11080 SYMBOL (DUMMY_X+10,DUMMY_Y+110),"ロード",FBAI,FBAI,%15
  110. 11090 SYMBOL (DUMMY_X+10,DUMMY_Y+130),"TIFF",FBAI,FBAI,%15
  111. 11100 SYMBOL (DUMMY_X+10,DUMMY_Y+150),"EUP",FBAI,FBAI,%15
  112. 11110 SYMBOL (DUMMY_X+10,DUMMY_Y+170),"終了",FBAI,FBAI,%15
  113. 11120 IF BLOCK_KIND=0 THEN MOUSE 1,DUMMY_X+34,DUMMY_Y+16,1
  114. 11130 IF BLOCK_KIND=1 THEN MOUSE 1,DUMMY_X+34,DUMMY_Y+36,1
  115. 11140 IF BLOCK_KIND=2 THEN MOUSE 1,DUMMY_X+34,DUMMY_Y+56,1
  116. 11150 '
  117. 11160 GOTO *セレクタループ
  118. 11170 '
  119. 11180 *セレクタループ
  120. 11190 '
  121. 11200 WHILE ENDLESS=0
  122. 11210 IF MOUSE (2,0)=-1 THEN
  123. 11220   IF DUMMY_Y+10<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+29   THEN BLOCK_KIND=0:CLS
  124. 11230   IF DUMMY_Y+30<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+49   THEN BLOCK_KIND=1:CLS
  125. 11240   IF DUMMY_Y+50<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+69   THEN BLOCK_KIND=2:CLS
  126. 11250   IF DUMMY_Y+70<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+89   THEN *全消去
  127. 11260   IF DUMMY_Y+90<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+109  THEN *セーブ
  128. 11270   IF DUMMY_Y+110<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+129 THEN *ロード
  129. 11280   IF DUMMY_Y+130<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+149 THEN GOSUB *TIFF
  130. 11290   IF DUMMY_Y+150<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+169 THEN GOSUB *EUP
  131. 11300   IF DUMMY_Y+170<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+189 THEN END
  132. 11310   SCREEN 1,0,3,1:RETURN
  133. 11320 ENDIF
  134. 11330 IF MOUSE (2,1)=-1 THEN CLS:SCREEN 1,0,3,1:RETURN
  135. 11340 WEND
  136. 11350 ''''
  137. 11360 '
  138. 11370 *全消去
  139. 11380 '
  140. 11390 FOR LY=1 TO 32
  141. 11400   FOR LX=1 TO 32
  142. 11410     G%(LX,LY)=0
  143. 11420   NEXT LX
  144. 11430 NEXT LY
  145. 11440 '
  146. 11450 GOTO *再表示
  147. 11460 '
  148. 11470 RETURN
  149. 11480 ''''
  150. 11490 '
  151. 11500 *セーブ
  152. 11510 '
  153. 11520 DUMMY_X=DUMMY_X+20
  154. 11530 DUMMY_Y=DUMMY_Y+20
  155. 11540 LINE (DUMMY_X,DUMMY_Y)-(DUMMY_X+102,DUMMY_Y+232),PSET,%2,BF,%3
  156. 11550 SYMBOL (DUMMY_X+16,DUMMY_Y+10) ,"データセーブ",FBAI,FBAI,%15
  157. 11560 SYMBOL (DUMMY_X+10,DUMMY_Y+30) ,"001",FBAI,FBAI,%15
  158. 11570 SYMBOL (DUMMY_X+10,DUMMY_Y+50) ,"002",FBAI,FBAI,%15
  159. 11580 SYMBOL (DUMMY_X+10,DUMMY_Y+70) ,"003",FBAI,FBAI,%15
  160. 11590 SYMBOL (DUMMY_X+10,DUMMY_Y+90) ,"004",FBAI,FBAI,%15
  161. 11600 SYMBOL (DUMMY_X+10,DUMMY_Y+110),"005",FBAI,FBAI,%15
  162. 11610 SYMBOL (DUMMY_X+10,DUMMY_Y+130),"006",FBAI,FBAI,%15
  163. 11620 SYMBOL (DUMMY_X+10,DUMMY_Y+150),"007",FBAI,FBAI,%15
  164. 11630 SYMBOL (DUMMY_X+10,DUMMY_Y+170),"008",FBAI,FBAI,%15
  165. 11640 SYMBOL (DUMMY_X+10,DUMMY_Y+190),"009",FBAI,FBAI,%15
  166. 11650 SYMBOL (DUMMY_X+10,DUMMY_Y+210),"010",FBAI,FBAI,%15
  167. 11660 SYMBOL (DUMMY_X+56,DUMMY_Y+30) ,"011",FBAI,FBAI,%15
  168. 11670 SYMBOL (DUMMY_X+56,DUMMY_Y+50) ,"012",FBAI,FBAI,%15
  169. 11680 SYMBOL (DUMMY_X+56,DUMMY_Y+70) ,"013",FBAI,FBAI,%15
  170. 11690 SYMBOL (DUMMY_X+56,DUMMY_Y+90) ,"014",FBAI,FBAI,%15
  171. 11700 SYMBOL (DUMMY_X+56,DUMMY_Y+110),"015",FBAI,FBAI,%15
  172. 11710 SYMBOL (DUMMY_X+56,DUMMY_Y+130),"016",FBAI,FBAI,%15
  173. 11720 SYMBOL (DUMMY_X+56,DUMMY_Y+150),"017",FBAI,FBAI,%15
  174. 11730 SYMBOL (DUMMY_X+56,DUMMY_Y+170),"018",FBAI,FBAI,%15
  175. 11740 SYMBOL (DUMMY_X+56,DUMMY_Y+190),"019",FBAI,FBAI,%15
  176. 11750 SYMBOL (DUMMY_X+56,DUMMY_Y+210),"020",FBAI,FBAI,%15
  177. 11760 '
  178. 11770 GOTO *セーブループ
  179. 11780 '
  180. 11790 *セーブループ
  181. 11800 '
  182. 11810 WHILE ENDLESS=0
  183. 11820 IF MOUSE(2,0)=-1 THEN
  184. 11830   IF DUMMY_X+10<=MOUSE(0) AND MOUSE(0)<=DUMMY_X+46 THEN
  185. 11840     IF DUMMY_Y+30<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+49   THEN SAVE_NO$="1.DAT"
  186. 11850     IF DUMMY_Y+50<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+69   THEN SAVE_NO$="2.DAT"
  187. 11860     IF DUMMY_Y+70<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+89   THEN SAVE_NO$="3.DAT"
  188. 11870     IF DUMMY_Y+90<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+109  THEN SAVE_NO$="4.DAT"
  189. 11880     IF DUMMY_Y+110<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+129 THEN SAVE_NO$="5.DAT"
  190. 11890     IF DUMMY_Y+130<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+149 THEN SAVE_NO$="6.DAT"
  191. 11900     IF DUMMY_Y+150<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+169 THEN SAVE_NO$="7.DAT"
  192. 11910     IF DUMMY_Y+170<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+189 THEN SAVE_NO$="8.DAT"
  193. 11920     IF DUMMY_Y+190<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+209 THEN SAVE_NO$="9.DAT"
  194. 11930     IF DUMMY_Y+210<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+229 THEN SAVE_NO$="10.DAT"
  195. 11940     '
  196. 11950     GOTO *セーブ実働
  197. 11960   ENDIF
  198. 11970   IF DUMMY_X+56<=MOUSE(0) AND MOUSE(0)<=DUMMY_X+92 THEN
  199. 11980     IF DUMMY_Y+30<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+49  THEN  SAVE_NO$="11.DAT"
  200. 11990     IF DUMMY_Y+50<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+69  THEN  SAVE_NO$="12.DAT"
  201. 12000     IF DUMMY_Y+70<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+89  THEN  SAVE_NO$="13.DAT"
  202. 12010     IF DUMMY_Y+90<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+109 THEN  SAVE_NO$="14.DAT"
  203. 12020     IF DUMMY_Y+110<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+129 THEN SAVE_NO$="15.DAT"
  204. 12030     IF DUMMY_Y+130<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+149 THEN SAVE_NO$="16.DAT"
  205. 12040     IF DUMMY_Y+150<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+169 THEN SAVE_NO$="17.DAT"
  206. 12050     IF DUMMY_Y+170<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+189 THEN SAVE_NO$="18.DAT"
  207. 12060     IF DUMMY_Y+190<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+209 THEN SAVE_NO$="19.DAT"
  208. 12070     IF DUMMY_Y+210<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+229 THEN SAVE_NO$="20.DAT"
  209. 12080     '
  210. 12090     GOTO *セーブ実働
  211. 12100   ENDIF
  212. 12110 ENDIF
  213. 12120 IF MOUSE(2,1)=-1 THEN CLS:SCREEN 1,0,3,1:RETURN
  214. 12130 WEND
  215. 12140 '
  216. 12150 *セーブ実働
  217. 12160 '
  218. 12170 SAVE@ "DCMDATA\DCM"+SAVE_NO$,G%
  219. 12180 '
  220. 12190 CLS:SCREEN 1,0,3,1:RETURN
  221. 12200 ''''
  222. 12210 '
  223. 12220 *ロード
  224. 12230 '
  225. 12240 DUMMY_X=DUMMY_X+20
  226. 12250 DUMMY_Y=DUMMY_Y+20
  227. 12260 LINE (DUMMY_X,DUMMY_Y)-(DUMMY_X+102,DUMMY_Y+232),PSET,%2,BF,%3
  228. 12270 SYMBOL (DUMMY_X+16,DUMMY_Y+10) ,"データロード",FBAI,FBAI,%15
  229. 12280 SYMBOL (DUMMY_X+10,DUMMY_Y+30) ,"001",FBAI,FBAI,%15
  230. 12290 SYMBOL (DUMMY_X+10,DUMMY_Y+50) ,"002",FBAI,FBAI,%15
  231. 12300 SYMBOL (DUMMY_X+10,DUMMY_Y+70) ,"003",FBAI,FBAI,%15
  232. 12310 SYMBOL (DUMMY_X+10,DUMMY_Y+90) ,"004",FBAI,FBAI,%15
  233. 12320 SYMBOL (DUMMY_X+10,DUMMY_Y+110),"005",FBAI,FBAI,%15
  234. 12330 SYMBOL (DUMMY_X+10,DUMMY_Y+130),"006",FBAI,FBAI,%15
  235. 12340 SYMBOL (DUMMY_X+10,DUMMY_Y+150),"007",FBAI,FBAI,%15
  236. 12350 SYMBOL (DUMMY_X+10,DUMMY_Y+170),"008",FBAI,FBAI,%15
  237. 12360 SYMBOL (DUMMY_X+10,DUMMY_Y+190),"009",FBAI,FBAI,%15
  238. 12370 SYMBOL (DUMMY_X+10,DUMMY_Y+210),"010",FBAI,FBAI,%15
  239. 12380 SYMBOL (DUMMY_X+56,DUMMY_Y+30) ,"011",FBAI,FBAI,%15
  240. 12390 SYMBOL (DUMMY_X+56,DUMMY_Y+50) ,"012",FBAI,FBAI,%15
  241. 12400 SYMBOL (DUMMY_X+56,DUMMY_Y+70) ,"013",FBAI,FBAI,%15
  242. 12410 SYMBOL (DUMMY_X+56,DUMMY_Y+90) ,"014",FBAI,FBAI,%15
  243. 12420 SYMBOL (DUMMY_X+56,DUMMY_Y+110),"015",FBAI,FBAI,%15
  244. 12430 SYMBOL (DUMMY_X+56,DUMMY_Y+130),"016",FBAI,FBAI,%15
  245. 12440 SYMBOL (DUMMY_X+56,DUMMY_Y+150),"017",FBAI,FBAI,%15
  246. 12450 SYMBOL (DUMMY_X+56,DUMMY_Y+170),"018",FBAI,FBAI,%15
  247. 12460 SYMBOL (DUMMY_X+56,DUMMY_Y+190),"019",FBAI,FBAI,%15
  248. 12470 SYMBOL (DUMMY_X+56,DUMMY_Y+210),"020",FBAI,FBAI,%15
  249. 12480 '
  250. 12490 GOTO *ロードループ
  251. 12500 '
  252. 12510 *ロードループ
  253. 12520 '
  254. 12530 WHILE ENDLESS=0
  255. 12540 IF MOUSE(2,0)=-1 THEN
  256. 12550   IF DUMMY_X+10<=MOUSE(0) AND MOUSE(0)<=DUMMY_X+46 THEN
  257. 12560     IF DUMMY_Y+30<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+49   THEN LOAD_NO$="1"
  258. 12570     IF DUMMY_Y+50<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+69   THEN LOAD_NO$="2"
  259. 12580     IF DUMMY_Y+70<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+89   THEN LOAD_NO$="3"
  260. 12590     IF DUMMY_Y+90<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+109  THEN LOAD_NO$="4"
  261. 12600     IF DUMMY_Y+110<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+129 THEN LOAD_NO$="5"
  262. 12610     IF DUMMY_Y+130<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+149 THEN LOAD_NO$="6"
  263. 12620     IF DUMMY_Y+150<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+169 THEN LOAD_NO$="7"
  264. 12630     IF DUMMY_Y+170<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+189 THEN LOAD_NO$="8"
  265. 12640     IF DUMMY_Y+190<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+209 THEN LOAD_NO$="9"
  266. 12650     IF DUMMY_Y+210<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+229 THEN LOAD_NO$="10"
  267. 12660     '
  268. 12670     GOTO *ロード実働
  269. 12680   ENDIF
  270. 12690   IF DUMMY_X+56<=MOUSE(0) AND MOUSE(0)<=DUMMY_X+92 THEN
  271. 12700     IF DUMMY_Y+30<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+49  THEN LOAD_NO$="11"
  272. 12710     IF DUMMY_Y+50<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+69  THEN LOAD_NO$="12"
  273. 12720     IF DUMMY_Y+70<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+89  THEN LOAD_NO$="13"
  274. 12730     IF DUMMY_Y+90<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+109 THEN LOAD_NO$="14"
  275. 12740     IF DUMMY_Y+110<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+129 THEN LOAD_NO$="15"
  276. 12750     IF DUMMY_Y+130<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+149 THEN LOAD_NO$="16"
  277. 12760     IF DUMMY_Y+150<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+169 THEN LOAD_NO$="17"
  278. 12770     IF DUMMY_Y+170<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+189 THEN LOAD_NO$="18"
  279. 12780     IF DUMMY_Y+190<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+209 THEN LOAD_NO$="19"
  280. 12790     IF DUMMY_Y+210<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+229 THEN LOAD_NO$="20"
  281. 12800     '
  282. 12810     GOTO *ロード実働
  283. 12820   ENDIF
  284. 12830 ENDIF
  285. 12840 IF MOUSE(2,1)=-1 THEN CLS:SCREEN 1,0,3,1:RETURN
  286. 12850 WEND
  287. 12860 '
  288. 12870 *ロード実働
  289. 12880 '
  290. 12890 LOAD@ "DCMDATA\DCM"+LOAD_NO$+".DAT",G%
  291. 12900 '
  292. 12910 GOTO *再表示
  293. 12920 ''''
  294. 12930 '
  295. 12940 *TIFF
  296. 12950 '
  297. 12960 DUMMY_X=DUMMY_X+20
  298. 12970 DUMMY_Y=DUMMY_Y+20
  299. 12980 LINE (DUMMY_X,DUMMY_Y)-(DUMMY_X+102,DUMMY_Y+232),PSET,%2,BF,%3
  300. 12990 SYMBOL (DUMMY_X+10,DUMMY_Y+10) ,"TIFFセーブ",FBAI,FBAI,%15
  301. 13000 SYMBOL (DUMMY_X+10,DUMMY_Y+30) ,"001",FBAI,FBAI,%15
  302. 13010 SYMBOL (DUMMY_X+10,DUMMY_Y+50) ,"002",FBAI,FBAI,%15
  303. 13020 SYMBOL (DUMMY_X+10,DUMMY_Y+70) ,"003",FBAI,FBAI,%15
  304. 13030 SYMBOL (DUMMY_X+10,DUMMY_Y+90) ,"004",FBAI,FBAI,%15
  305. 13040 SYMBOL (DUMMY_X+10,DUMMY_Y+110),"005",FBAI,FBAI,%15
  306. 13050 SYMBOL (DUMMY_X+10,DUMMY_Y+130),"006",FBAI,FBAI,%15
  307. 13060 SYMBOL (DUMMY_X+10,DUMMY_Y+150),"007",FBAI,FBAI,%15
  308. 13070 SYMBOL (DUMMY_X+10,DUMMY_Y+170),"008",FBAI,FBAI,%15
  309. 13080 SYMBOL (DUMMY_X+10,DUMMY_Y+190),"009",FBAI,FBAI,%15
  310. 13090 SYMBOL (DUMMY_X+10,DUMMY_Y+210),"010",FBAI,FBAI,%15
  311. 13100 SYMBOL (DUMMY_X+56,DUMMY_Y+30) ,"011",FBAI,FBAI,%15
  312. 13110 SYMBOL (DUMMY_X+56,DUMMY_Y+50) ,"012",FBAI,FBAI,%15
  313. 13120 SYMBOL (DUMMY_X+56,DUMMY_Y+70) ,"013",FBAI,FBAI,%15
  314. 13130 SYMBOL (DUMMY_X+56,DUMMY_Y+90) ,"014",FBAI,FBAI,%15
  315. 13140 SYMBOL (DUMMY_X+56,DUMMY_Y+110),"015",FBAI,FBAI,%15
  316. 13150 SYMBOL (DUMMY_X+56,DUMMY_Y+130),"016",FBAI,FBAI,%15
  317. 13160 SYMBOL (DUMMY_X+56,DUMMY_Y+150),"017",FBAI,FBAI,%15
  318. 13170 SYMBOL (DUMMY_X+56,DUMMY_Y+170),"018",FBAI,FBAI,%15
  319. 13180 SYMBOL (DUMMY_X+56,DUMMY_Y+190),"019",FBAI,FBAI,%15
  320. 13190 SYMBOL (DUMMY_X+56,DUMMY_Y+210),"020",FBAI,FBAI,%15
  321. 13200 '
  322. 13210 GOTO *TIFFループ
  323. 13220 '
  324. 13230 *TIFFループ
  325. 13240 '
  326. 13250 WHILE ENDLESS=0
  327. 13260 IF MOUSE(2,0)=-1 THEN
  328. 13270   IF DUMMY_X+10<=MOUSE(0) AND MOUSE(0)<=DUMMY_X+46 THEN
  329. 13280     IF DUMMY_Y+30<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+49   THEN TIFF_NO$="1.TIF"
  330. 13290     IF DUMMY_Y+50<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+69   THEN TIFF_NO$="2.TIF"
  331. 13300     IF DUMMY_Y+70<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+89   THEN TIFF_NO$="3.TIF"
  332. 13310     IF DUMMY_Y+90<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+109  THEN TIFF_NO$="4.TIF"
  333. 13320     IF DUMMY_Y+110<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+129 THEN TIFF_NO$="5.TIF"
  334. 13330     IF DUMMY_Y+130<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+149 THEN TIFF_NO$="6.TIF"
  335. 13340     IF DUMMY_Y+150<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+169 THEN TIFF_NO$="7.TIF"
  336. 13350     IF DUMMY_Y+170<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+189 THEN TIFF_NO$="8.TIF"
  337. 13360     IF DUMMY_Y+190<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+209 THEN TIFF_NO$="9.TIF"
  338. 13370     IF DUMMY_Y+210<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+229 THEN TIFF_NO$="10.TIF"
  339. 13380     '
  340. 13390     GOTO *TIFF実働
  341. 13400   ENDIF
  342. 13410   IF DUMMY_X+56<=MOUSE(0) AND MOUSE(0)<=DUMMY_X+92 THEN
  343. 13420     IF DUMMY_Y+30<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+49   THEN TIFF_NO$="11.TIF"
  344. 13430     IF DUMMY_Y+50<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+69   THEN TIFF_NO$="12.TIF"
  345. 13440     IF DUMMY_Y+70<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+89   THEN TIFF_NO$="13.TIF"
  346. 13450     IF DUMMY_Y+90<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+109  THEN TIFF_NO$="14.TIF"
  347. 13460     IF DUMMY_Y+110<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+129 THEN TIFF_NO$="15.TIF"
  348. 13470     IF DUMMY_Y+130<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+149 THEN TIFF_NO$="16.TIF"
  349. 13480     IF DUMMY_Y+150<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+169 THEN TIFF_NO$="17.TIF"
  350. 13490     IF DUMMY_Y+170<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+189 THEN TIFF_NO$="18.TIF"
  351. 13500     IF DUMMY_Y+190<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+209 THEN TIFF_NO$="19.TIF"
  352. 13510     IF DUMMY_Y+210<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+229 THEN TIFF_NO$="20.TIF"
  353. 13520     '
  354. 13530     GOTO *TIFF実働
  355. 13540   ENDIF
  356. 13550 ENDIF
  357. 13560 IF MOUSE(2,1)=-1 THEN CLS:SCREEN 1,0,3,1:RETURN
  358. 13570 WEND
  359. 13580 '
  360. 13590 *TIFF実働
  361. 13600 '
  362. 13610 SCREEN 1,0,3,1
  363. 13620 SAVE_NO$=TIFF_NO$
  364. 13630 SAVE@ "DCMDATA\DCM"+TIFF_NO$,(0,0)-(639,479),1
  365. 13640 SCREEN 1,1,3,1
  366. 13650 '
  367. 13660 CLS:SCREEN 1,0,3,1:RETURN
  368. 13670 ''''
  369. 13680 '
  370. 13690 *EUP
  371. 13700 '
  372. 13710 LOAD@ EUP_NAME$,EUP%
  373. 13720 IF PLAY(0)=-1 THEN PLAY OFF ELSE PLAY@ EUP%,1
  374. 13730 '
  375. 13740 CLS:SCREEN 1,0,3,1:RETURN
  376. 13750 ''''
  377. 13760 '
  378. 13770 *エラートラップ
  379. 13780 '
  380. 13790 IF ERR=64 THEN KILL "DCMDATA\DCM"+SAVE_NO$:RESUME
  381. 13800 IF ERR=63 THEN RESUME NEXT
  382. 13810 ''''
  383. 13820 '
  384. 13830 *マウス初期設定
  385. 13840 '
  386. 13850 MOUSE_AND$=CHR$(&H7F,&HFF,&H3F,&HFF,&H1F,&HFF,&H0F,&HFF,&H07,&HFF,&H03,&HFF,&H01,&HFF,&H00,&HFF,&H00,&H7F,&H00,&H3F,&H01,&HFF,&H10,&HFF,&H30,&HFF,&HF8,&HFF,&HF8,&HFF,&HFF,&HFF)
  387. 13860 MOUSE_DOT$=CHR$(&H00,&H00,&H00,&H00,&H40,&H00,&H60,&H00,&H30,&H00,&H58,&H00,&H2C,&H00,&H5E,&H00,&H2F,&H00,&H7C,&H00,&H64,&H00,&H04,&H00,&H02,&H00,&H02,&H00,&H00,&H00,&H00,&H00)
  388. 13870 '
  389. 13880 ' マウス初期設定
  390. 13890 '
  391. 13900 MOUSE 0,1
  392. 13910 MOUSE 2,MOUSE_AND$,MOUSE_DOT$
  393. 13920 MOUSE 4,PLUS_X+1,PLUS_Y+1,PLUS_X+32*GRID_ST-2,PLUS_Y+32*GRID_ST-2
  394. 13930 MOUSE 1,0,0,1
  395. 13940 RETURN
  396. 13950 ''''
  397. 13960 '
  398. 13970 *現在位置計算
  399. 13980 '
  400. 13990 GX =FIX((ZELDA_X-PLUS_X+GRID_ST)/GRID_ST)
  401. 14000 GY =FIX((ZELDA_Y-PLUS_Y+GRID_ST)/GRID_ST)
  402. 14010 GX2=FIX((ZELDA_X+1-PLUS_X+GRID_ST)/GRID_ST)
  403. 14020 GY2=FIX((ZELDA_Y+1-PLUS_Y+GRID_ST)/GRID_ST)
  404. 14030 RETURN
  405. 14040 ''''
  406. 14050 '
  407. 14060 *グリッド作成
  408. 14070 '
  409. 14080 '
  410. 14090 ' 縦線
  411. 14100 '
  412. 14110 FOR ZX=1 TO 33
  413. 14120   LINE (GRID_ST*ZX+PLUS_X-GRID_ST,1*GRID_ST+PLUS_Y-GRID_ST)-(GRID_ST*ZX+PLUS_X-GRID_ST,33*GRID_ST+PLUS_Y-GRID_ST),PSET,%8
  414. 14130 NEXT ZX
  415. 14140 '
  416. 14150 ' 横線
  417. 14160 '
  418. 14170 FOR ZY=1 TO 33
  419. 14180   LINE (1*GRID_ST+PLUS_X-GRID_ST,GRID_ST*ZY+PLUS_Y-GRID_ST)-(33*GRID_ST+PLUS_X-GRID_ST,GRID_ST*ZY+PLUS_Y-GRID_ST),PSET,%8
  420. 14190 NEXT ZY
  421. 14200 '
  422. 14210 RETURN
  423. 14220 ''''
  424. 14230 '
  425. 14240 *再表示
  426. 14250 '
  427. 14260 CLS:SCREEN 1,0,3,1
  428. 14270 FOR LY=1 TO 32
  429. 14280   FOR LX=1 TO 32
  430. 14290     IF G%(LX,LY)=0 THEN
  431. 14300       PA_POINT_X=GRID_ST*LX+PLUS_X-GRID_ST+1
  432. 14310       PA_POINT_Y=GRID_ST*LY+PLUS_Y-GRID_ST+1
  433. 14320       PAINT (PA_POINT_X,PA_POINT_Y),%1,%8
  434. 14330     ENDIF
  435. 14340     IF G%(LX,LY)=1 THEN
  436. 14350       PA_POINT_X=GRID_ST*LX+PLUS_X-GRID_ST+1
  437. 14360       PA_POINT_Y=GRID_ST*LY+PLUS_Y-GRID_ST+1
  438. 14370       PAINT (PA_POINT_X,PA_POINT_Y),%7,%8
  439. 14380     ENDIF
  440. 14390     IF G%(LX,LY)=2 THEN
  441. 14400       PA_POINT_X=GRID_ST*LX+PLUS_X-GRID_ST+1
  442. 14410       PA_POINT_Y=GRID_ST*LY+PLUS_Y-GRID_ST+1
  443. 14420       PAINT (PA_POINT_X,PA_POINT_Y),%6,%8
  444. 14430     ENDIF
  445. 14440   NEXT LX
  446. 14450 NEXT LY
  447. 14460 '
  448. 14470 RETURN
  449. 14480 ''''
  450. 14490 '
  451. 14500 *コンフィグロード
  452. 14510 '
  453. 14520 OPEN "I",#1,"DCMEDIT.CFG"
  454. 14530 LINE INPUT #1,DUMMY$
  455. 14540 IF LEFT$(DUMMY$,3)="EUP" THEN EUP_NAME$=MID$(DUMMY$,5)
  456. 14550 CLOSE
  457. 14560 RETURN
  458. 14570 ''''
  459. 14580 '
  460. 14590 *パレットロード
  461. 14600 '
  462. 14610 OPEN "I",#1,"DCMEDIT.PAL"
  463. 14620 WHILE EOF(1)<>-1
  464. 14630   INPUT #1,PAL_NO,G,R,B
  465. 14640   PALETTE PAL_NO,[G,R,B]
  466. 14650 WEND
  467. 14660 CLOSE
  468. 14670 RETURN
  469. 14680 '
  470. 14690 *ロゴ表示
  471. 14700 '
  472. 14710 PALETTE 11,[0,255,255]
  473. 14720 SYMBOL (2,2),"DCMEdit v1.00b",12/16,12/16,%11
  474. 14730 SYMBOL (457,465),"1993 By EMERALD",12/16,12/16,%11
  475. 14740 RETURN
  476.